package com.cn.wanxi.util;

import org.omg.CORBA.PUBLIC_MEMBER;

import java.sql.*;

/**
 * 　　第1步：注冊驱动 (仅仅做一次)
 * 　　第2步：建立连接(Connection)
 * 　　第3步：创建运行SQL的语句(Statement)
 * 　　第4步：运行语句
 * 　　第5步：处理运行结果(ResultSet)
 * 　　第6步：释放资源
 */
public class JDBC {
    private JDBC() {
    }

    //首先要下载mysql驱动包
    static {
//        反射
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    private static Connection getConnetion() {
        String url = "jdbc:mysql://121.199.55.96:3306/canyin04";
        String username = "canyin04";
        String password = "123456";

//            创建数据库连接
        try {
            return DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    //Statement和PreparedStatement的区别
    public static ResultSet query(String sql) {
        try {
            Connection connection = getConnetion();
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            return preparedStatement.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    //    增加，修改，删除

    /**
     * 返回结果  等于1，表示影响的条数1
     * 如果是0，表示没有影响到数据库，表示没有更新成功
     * @param sql
     * @return
     */
    public static int update(String sql) {
        try {
//            创建数据库连接
            Connection connection = getConnetion();
//            编译sql语句
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
//            运行sql语句
            return preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}
